package com.lin.question;
/****************************************************************************
 * com.lin.question AskQuestion.java Created on 2016年1月6日
 * @Author: linfenliang
 * @Description:
 * <pre>这是一个实际案例，在移动医疗领域中，可能会遇到患者咨询问题，
 * 患者咨询问题时，可能是文本、图片、语音等，未来可能还会有视频、电话等方式
 * 患者咨询问题可以通过不同的平台进入到系统中，而不同平台过来的数据，均需要进行格式化，
 * 然后进入统一的数据处理框架，不同的数据类型，需要进行不同的处理，
 * 同时，处理完以后的数据，根据不同的平台，需要做不同的转换处理
 * 目前这里给出一个策略模式的实现方案，当然，可能会有其他模式更合适，这里仅为了说明策略模式
 * </pre>
 * 
 * @Version: 1.0
 ***************************************************************************/
public abstract class AskQuestion {
	private AskDataType adt;
	public void setAskDataType(AskDataType adt) {
		this.adt = adt;
	}
	public <T> void processSession(T in){
		this.adt.processAskData(in);
	};
	public abstract <T, P> T formatInputStream(P in);
	public abstract <T, P> T formatOutputStream(P out);

}
